import request from '@/config/axios'

export interface TicketTrendVO {
  timeRange: string // 时间范围
  chartType: string // 图表类型
  startDate?: string // 开始日期
  endDate?: string // 结束日期
}

export interface TicketReportReqVO {
  timeRange?: string // 时间维度：day-日, week-周, month-月
  beginTime?: Date // 开始时间
  endTime?: Date // 结束时间
  pageNo?: number // 页码
  pageSize?: number // 每页条数
}

export interface TicketReportRespVO {
  date: string // 日期
  ticketType: string // 门票类型
  salesCount: number // 销售数量
  salesAmount: number // 销售金额
  channel: string // 渠道来源
  refundCount: number // 退票数量
  refundAmount: number // 退票金额
  netAmount: number // 净收入
}

export const HomeApi = {
  /**
   * 获取首页概览数据
   * @param date - 查询日期
   * @returns 概览数据
   */
  getHomeOverview : async (date: string) => {
    return await request.get({
      url: '/home/index/overview',
      params: {date}
    })
  },

  /**
   * 获取售票趋势图数据
   */
  getTicketTrend : async (data: TicketTrendVO) => {
    return await request.post({ url: '/home/index/ticket-trend', data })
  },
  /**
   * 售票统计报表
   * @param params
   * @returns 
   */
  getTicketReportPage: async (params: TicketReportReqVO) => {
    return await request.get({ url: '/home/index/page', params })
  },

  /**
   * 导出售票统计报表
   * @param params - 查询参数
   */
  exportTicketReport: async (params: TicketReportReqVO) => {
    return await request.download({ url: '/home/index/export', params })
  }

}
